"""
管理员逻辑接口层
"""

from db import models


# 管理员注册接口函数
def register_interface(username, password):
    # 1. 检查用户名是否已经被使用
    admin_obj = models.Admin.select(username)

    # 2. 如果被使用则直接返回
    if admin_obj:
        return False, "用户名已经被注册！"

    # 3. 如果没有使用则进行注册
    admin_obj = models.Admin(username, password)
    admin_obj.register()
    
    return True, f"[{username}] 管理员注册成功！"


# 管理员登录接口函数，使用公共接口中的登录接口函数
"""
def login_interface(username, password):
    # 1. 检查用户名是否存在
    admin_obj = models.Admin.select(username)

    # 2. 如果不存在则直接返回
    if not admin_obj:
        return False, "用户名还未注册！"

    # 3. 如果存在则进行登录
    flag = admin_obj.login(password)
    if not flag:
        return False, "用户名或密码错误！"
    else:
        return True, f"[{username}] 用户登录成功！"
"""


# 管理员添加学校接口函数
def create_school_interface(school_name, admin):
    # 1. 检查学校是否已经存在
    school_obj = models.School.select(school_name)

    # 2. 如果存在则直接返回
    if school_obj:
        return False, "学校已经存在！"

    # 3. 如果不存在则进行添加
    admin_obj = models.Admin.select(admin)
    admin_obj.create_school(school_name)

    return True, f"[{school_name}] 学校创建成功！"


# 管理员添加课程接口函数
def create_course_interface(school_name, course_name, admin):
    # 1. 检查学校中该课程是否存在
    school_obj = models.School.select(school_name)

    # 2. 如果存在则直接退出
    if course_name in school_obj.course_list:
        return False, "该课程已经存在！"

    # 3. 如果没有则进行添加
    admin_obj = models.Admin.select(admin)
    admin_obj.create_course(school_obj, course_name)

    return True, f"[{school_name}] 学校添加 [{course_name}] 课程成功！"


# 管理员添加老师接口函数
def add_teacher_interface(teacher_name, admin, password='123'):
    # 1. 检查老师名字是否已经存在
    teacher_obj = models.Teacher.select(teacher_name)

    # 2. 如果存在则直接退出
    if teacher_obj:
        return False, "老师已经存在！"

    # 3. 如果不存在则进行添加
    admin_obj = models.Admin.select(admin)
    admin_obj.add_teacher(teacher_name, password)

    return True, f"[{teacher_name}] 老师添加成功！"
